Portable devices frequently have the ability to play media content items, comprising content items such as songs, movies, video clips, documentaries, and the like. Devices with such playback capabilities can include wireless telephones, media players, tablet computers, wearable computing devices, and the like. A corresponding library database includes the content items themselves, as well as metadata that identifies each content item in the library. Typically, a user has a library of content items, which can be propagated to corresponding libraries in other devices in a synchronization (“sync”) operation, so that the library databases of the user's various devices are synchronized. For example, a user may have an “iTunes” media library on a computer device acting as a host, and may sync that “iTunes” media library with an associated smaller, local media library on mobile devices, such as the user's “iPhone” device and “iPad” device. Most library sync operations are performed wirelessly between the user's host media library (e.g., iTunes library) and the local library of each portable device.
Some users may have a media content item library database that is quite extensive, with tens of thousands of content items. Larger library databases require more time to complete the sync operation than smaller library databases. Performing a wireless sync operation between the host media library database and the local library database of each portable device can be problematic, due to poor connections over the wireless communication channel or due to user interruption. An interruption in any stage of the sync process can require the entire sync operation to be performed anew, once the wireless connection has been re-established.
Some systems utilize a two-phase sync operation, in which metadata is synced first, followed by sync of media content items. Each time a user makes a change to the system media library on a device and completes the change session to save the changes to the library database, such as by adding a song or editing a note for a content item, the system assigns a version number to the media content item library database. That is, when the changed media content item library database is saved, its corresponding version number is incremented. The changes in a media content item library database generally comprise two types of data: metadata, which refers to data about the media content items, and the media content items themselves, such as songs, movies, images, and the like. For example, metadata about a song can include song title, song artist, album, music genre, play count, year of song's release, and the like. The song itself (i.e., the audio file) is data that comprises the media content. Metadata changes that will be synced are typically of smaller file size than corresponding media content item changes that will be synced. For example, adding a song to a media content item library entails adding the audio file comprising the media content item, and adding the song title, artist, and the like to the media content item library database, comprising the metadata.
Using a two-phase sync usually increases the likelihood that the metadata sync portion can be completed without incident, ensuring the entire file of metadata changes is successfully updated, so that only the second phase, the media content sync, must be completed. Nevertheless, with the increasing size of many user libraries, a two-phase sync operation may still be vulnerable to poor wireless connections and interruptions. For example, given the increased size of some user metadata files, connection interruptions may still occur in the middle of the metadata sync operation, in response to which the sync operation may have to be repeated in its entirety upon the re-establishment of the wireless channel connection.
Although success of the two-phase media content sync portion is increased over most single-phase sync operations, it is desirable to provide new techniques to increase the likelihood of a successful sync,